package com.local.model;

import java.util.ArrayList;
import java.util.List;

public class LocalChargeBytimeCopyExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public LocalChargeBytimeCopyExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andChargeBytimeUuidIsNull() {
            addCriterion("charge_bytime_uuid is null");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidIsNotNull() {
            addCriterion("charge_bytime_uuid is not null");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidEqualTo(String value) {
            addCriterion("charge_bytime_uuid =", value, "chargeBytimeUuid");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidNotEqualTo(String value) {
            addCriterion("charge_bytime_uuid <>", value, "chargeBytimeUuid");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidGreaterThan(String value) {
            addCriterion("charge_bytime_uuid >", value, "chargeBytimeUuid");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidGreaterThanOrEqualTo(String value) {
            addCriterion("charge_bytime_uuid >=", value, "chargeBytimeUuid");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidLessThan(String value) {
            addCriterion("charge_bytime_uuid <", value, "chargeBytimeUuid");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidLessThanOrEqualTo(String value) {
            addCriterion("charge_bytime_uuid <=", value, "chargeBytimeUuid");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidLike(String value) {
            addCriterion("charge_bytime_uuid like", value, "chargeBytimeUuid");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidNotLike(String value) {
            addCriterion("charge_bytime_uuid not like", value, "chargeBytimeUuid");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidIn(List<String> values) {
            addCriterion("charge_bytime_uuid in", values, "chargeBytimeUuid");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidNotIn(List<String> values) {
            addCriterion("charge_bytime_uuid not in", values, "chargeBytimeUuid");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidBetween(String value1, String value2) {
            addCriterion("charge_bytime_uuid between", value1, value2, "chargeBytimeUuid");
            return (Criteria) this;
        }

        public Criteria andChargeBytimeUuidNotBetween(String value1, String value2) {
            addCriterion("charge_bytime_uuid not between", value1, value2, "chargeBytimeUuid");
            return (Criteria) this;
        }

        public Criteria andCarTypeIsNull() {
            addCriterion("car_type is null");
            return (Criteria) this;
        }

        public Criteria andCarTypeIsNotNull() {
            addCriterion("car_type is not null");
            return (Criteria) this;
        }

        public Criteria andCarTypeEqualTo(String value) {
            addCriterion("car_type =", value, "carType");
            return (Criteria) this;
        }

        public Criteria andCarTypeNotEqualTo(String value) {
            addCriterion("car_type <>", value, "carType");
            return (Criteria) this;
        }

        public Criteria andCarTypeGreaterThan(String value) {
            addCriterion("car_type >", value, "carType");
            return (Criteria) this;
        }

        public Criteria andCarTypeGreaterThanOrEqualTo(String value) {
            addCriterion("car_type >=", value, "carType");
            return (Criteria) this;
        }

        public Criteria andCarTypeLessThan(String value) {
            addCriterion("car_type <", value, "carType");
            return (Criteria) this;
        }

        public Criteria andCarTypeLessThanOrEqualTo(String value) {
            addCriterion("car_type <=", value, "carType");
            return (Criteria) this;
        }

        public Criteria andCarTypeLike(String value) {
            addCriterion("car_type like", value, "carType");
            return (Criteria) this;
        }

        public Criteria andCarTypeNotLike(String value) {
            addCriterion("car_type not like", value, "carType");
            return (Criteria) this;
        }

        public Criteria andCarTypeIn(List<String> values) {
            addCriterion("car_type in", values, "carType");
            return (Criteria) this;
        }

        public Criteria andCarTypeNotIn(List<String> values) {
            addCriterion("car_type not in", values, "carType");
            return (Criteria) this;
        }

        public Criteria andCarTypeBetween(String value1, String value2) {
            addCriterion("car_type between", value1, value2, "carType");
            return (Criteria) this;
        }

        public Criteria andCarTypeNotBetween(String value1, String value2) {
            addCriterion("car_type not between", value1, value2, "carType");
            return (Criteria) this;
        }

        public Criteria andFreeTimeIsNull() {
            addCriterion("free_time is null");
            return (Criteria) this;
        }

        public Criteria andFreeTimeIsNotNull() {
            addCriterion("free_time is not null");
            return (Criteria) this;
        }

        public Criteria andFreeTimeEqualTo(String value) {
            addCriterion("free_time =", value, "freeTime");
            return (Criteria) this;
        }

        public Criteria andFreeTimeNotEqualTo(String value) {
            addCriterion("free_time <>", value, "freeTime");
            return (Criteria) this;
        }

        public Criteria andFreeTimeGreaterThan(String value) {
            addCriterion("free_time >", value, "freeTime");
            return (Criteria) this;
        }

        public Criteria andFreeTimeGreaterThanOrEqualTo(String value) {
            addCriterion("free_time >=", value, "freeTime");
            return (Criteria) this;
        }

        public Criteria andFreeTimeLessThan(String value) {
            addCriterion("free_time <", value, "freeTime");
            return (Criteria) this;
        }

        public Criteria andFreeTimeLessThanOrEqualTo(String value) {
            addCriterion("free_time <=", value, "freeTime");
            return (Criteria) this;
        }

        public Criteria andFreeTimeLike(String value) {
            addCriterion("free_time like", value, "freeTime");
            return (Criteria) this;
        }

        public Criteria andFreeTimeNotLike(String value) {
            addCriterion("free_time not like", value, "freeTime");
            return (Criteria) this;
        }

        public Criteria andFreeTimeIn(List<String> values) {
            addCriterion("free_time in", values, "freeTime");
            return (Criteria) this;
        }

        public Criteria andFreeTimeNotIn(List<String> values) {
            addCriterion("free_time not in", values, "freeTime");
            return (Criteria) this;
        }

        public Criteria andFreeTimeBetween(String value1, String value2) {
            addCriterion("free_time between", value1, value2, "freeTime");
            return (Criteria) this;
        }

        public Criteria andFreeTimeNotBetween(String value1, String value2) {
            addCriterion("free_time not between", value1, value2, "freeTime");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeIsNull() {
            addCriterion("free_time_charge is null");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeIsNotNull() {
            addCriterion("free_time_charge is not null");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeEqualTo(String value) {
            addCriterion("free_time_charge =", value, "freeTimeCharge");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeNotEqualTo(String value) {
            addCriterion("free_time_charge <>", value, "freeTimeCharge");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeGreaterThan(String value) {
            addCriterion("free_time_charge >", value, "freeTimeCharge");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeGreaterThanOrEqualTo(String value) {
            addCriterion("free_time_charge >=", value, "freeTimeCharge");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeLessThan(String value) {
            addCriterion("free_time_charge <", value, "freeTimeCharge");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeLessThanOrEqualTo(String value) {
            addCriterion("free_time_charge <=", value, "freeTimeCharge");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeLike(String value) {
            addCriterion("free_time_charge like", value, "freeTimeCharge");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeNotLike(String value) {
            addCriterion("free_time_charge not like", value, "freeTimeCharge");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeIn(List<String> values) {
            addCriterion("free_time_charge in", values, "freeTimeCharge");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeNotIn(List<String> values) {
            addCriterion("free_time_charge not in", values, "freeTimeCharge");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeBetween(String value1, String value2) {
            addCriterion("free_time_charge between", value1, value2, "freeTimeCharge");
            return (Criteria) this;
        }

        public Criteria andFreeTimeChargeNotBetween(String value1, String value2) {
            addCriterion("free_time_charge not between", value1, value2, "freeTimeCharge");
            return (Criteria) this;
        }

        public Criteria andBaseTimeIsNull() {
            addCriterion("base_time is null");
            return (Criteria) this;
        }

        public Criteria andBaseTimeIsNotNull() {
            addCriterion("base_time is not null");
            return (Criteria) this;
        }

        public Criteria andBaseTimeEqualTo(String value) {
            addCriterion("base_time =", value, "baseTime");
            return (Criteria) this;
        }

        public Criteria andBaseTimeNotEqualTo(String value) {
            addCriterion("base_time <>", value, "baseTime");
            return (Criteria) this;
        }

        public Criteria andBaseTimeGreaterThan(String value) {
            addCriterion("base_time >", value, "baseTime");
            return (Criteria) this;
        }

        public Criteria andBaseTimeGreaterThanOrEqualTo(String value) {
            addCriterion("base_time >=", value, "baseTime");
            return (Criteria) this;
        }

        public Criteria andBaseTimeLessThan(String value) {
            addCriterion("base_time <", value, "baseTime");
            return (Criteria) this;
        }

        public Criteria andBaseTimeLessThanOrEqualTo(String value) {
            addCriterion("base_time <=", value, "baseTime");
            return (Criteria) this;
        }

        public Criteria andBaseTimeLike(String value) {
            addCriterion("base_time like", value, "baseTime");
            return (Criteria) this;
        }

        public Criteria andBaseTimeNotLike(String value) {
            addCriterion("base_time not like", value, "baseTime");
            return (Criteria) this;
        }

        public Criteria andBaseTimeIn(List<String> values) {
            addCriterion("base_time in", values, "baseTime");
            return (Criteria) this;
        }

        public Criteria andBaseTimeNotIn(List<String> values) {
            addCriterion("base_time not in", values, "baseTime");
            return (Criteria) this;
        }

        public Criteria andBaseTimeBetween(String value1, String value2) {
            addCriterion("base_time between", value1, value2, "baseTime");
            return (Criteria) this;
        }

        public Criteria andBaseTimeNotBetween(String value1, String value2) {
            addCriterion("base_time not between", value1, value2, "baseTime");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeIsNull() {
            addCriterion("base_time_charge is null");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeIsNotNull() {
            addCriterion("base_time_charge is not null");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeEqualTo(String value) {
            addCriterion("base_time_charge =", value, "baseTimeCharge");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeNotEqualTo(String value) {
            addCriterion("base_time_charge <>", value, "baseTimeCharge");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeGreaterThan(String value) {
            addCriterion("base_time_charge >", value, "baseTimeCharge");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeGreaterThanOrEqualTo(String value) {
            addCriterion("base_time_charge >=", value, "baseTimeCharge");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeLessThan(String value) {
            addCriterion("base_time_charge <", value, "baseTimeCharge");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeLessThanOrEqualTo(String value) {
            addCriterion("base_time_charge <=", value, "baseTimeCharge");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeLike(String value) {
            addCriterion("base_time_charge like", value, "baseTimeCharge");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeNotLike(String value) {
            addCriterion("base_time_charge not like", value, "baseTimeCharge");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeIn(List<String> values) {
            addCriterion("base_time_charge in", values, "baseTimeCharge");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeNotIn(List<String> values) {
            addCriterion("base_time_charge not in", values, "baseTimeCharge");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeBetween(String value1, String value2) {
            addCriterion("base_time_charge between", value1, value2, "baseTimeCharge");
            return (Criteria) this;
        }

        public Criteria andBaseTimeChargeNotBetween(String value1, String value2) {
            addCriterion("base_time_charge not between", value1, value2, "baseTimeCharge");
            return (Criteria) this;
        }

        public Criteria andAccountTimeIsNull() {
            addCriterion("account_time is null");
            return (Criteria) this;
        }

        public Criteria andAccountTimeIsNotNull() {
            addCriterion("account_time is not null");
            return (Criteria) this;
        }

        public Criteria andAccountTimeEqualTo(String value) {
            addCriterion("account_time =", value, "accountTime");
            return (Criteria) this;
        }

        public Criteria andAccountTimeNotEqualTo(String value) {
            addCriterion("account_time <>", value, "accountTime");
            return (Criteria) this;
        }

        public Criteria andAccountTimeGreaterThan(String value) {
            addCriterion("account_time >", value, "accountTime");
            return (Criteria) this;
        }

        public Criteria andAccountTimeGreaterThanOrEqualTo(String value) {
            addCriterion("account_time >=", value, "accountTime");
            return (Criteria) this;
        }

        public Criteria andAccountTimeLessThan(String value) {
            addCriterion("account_time <", value, "accountTime");
            return (Criteria) this;
        }

        public Criteria andAccountTimeLessThanOrEqualTo(String value) {
            addCriterion("account_time <=", value, "accountTime");
            return (Criteria) this;
        }

        public Criteria andAccountTimeLike(String value) {
            addCriterion("account_time like", value, "accountTime");
            return (Criteria) this;
        }

        public Criteria andAccountTimeNotLike(String value) {
            addCriterion("account_time not like", value, "accountTime");
            return (Criteria) this;
        }

        public Criteria andAccountTimeIn(List<String> values) {
            addCriterion("account_time in", values, "accountTime");
            return (Criteria) this;
        }

        public Criteria andAccountTimeNotIn(List<String> values) {
            addCriterion("account_time not in", values, "accountTime");
            return (Criteria) this;
        }

        public Criteria andAccountTimeBetween(String value1, String value2) {
            addCriterion("account_time between", value1, value2, "accountTime");
            return (Criteria) this;
        }

        public Criteria andAccountTimeNotBetween(String value1, String value2) {
            addCriterion("account_time not between", value1, value2, "accountTime");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeIsNull() {
            addCriterion("account_time_charge is null");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeIsNotNull() {
            addCriterion("account_time_charge is not null");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeEqualTo(String value) {
            addCriterion("account_time_charge =", value, "accountTimeCharge");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeNotEqualTo(String value) {
            addCriterion("account_time_charge <>", value, "accountTimeCharge");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeGreaterThan(String value) {
            addCriterion("account_time_charge >", value, "accountTimeCharge");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeGreaterThanOrEqualTo(String value) {
            addCriterion("account_time_charge >=", value, "accountTimeCharge");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeLessThan(String value) {
            addCriterion("account_time_charge <", value, "accountTimeCharge");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeLessThanOrEqualTo(String value) {
            addCriterion("account_time_charge <=", value, "accountTimeCharge");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeLike(String value) {
            addCriterion("account_time_charge like", value, "accountTimeCharge");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeNotLike(String value) {
            addCriterion("account_time_charge not like", value, "accountTimeCharge");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeIn(List<String> values) {
            addCriterion("account_time_charge in", values, "accountTimeCharge");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeNotIn(List<String> values) {
            addCriterion("account_time_charge not in", values, "accountTimeCharge");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeBetween(String value1, String value2) {
            addCriterion("account_time_charge between", value1, value2, "accountTimeCharge");
            return (Criteria) this;
        }

        public Criteria andAccountTimeChargeNotBetween(String value1, String value2) {
            addCriterion("account_time_charge not between", value1, value2, "accountTimeCharge");
            return (Criteria) this;
        }

        public Criteria andSupassTimeIsNull() {
            addCriterion("supass_time is null");
            return (Criteria) this;
        }

        public Criteria andSupassTimeIsNotNull() {
            addCriterion("supass_time is not null");
            return (Criteria) this;
        }

        public Criteria andSupassTimeEqualTo(String value) {
            addCriterion("supass_time =", value, "supassTime");
            return (Criteria) this;
        }

        public Criteria andSupassTimeNotEqualTo(String value) {
            addCriterion("supass_time <>", value, "supassTime");
            return (Criteria) this;
        }

        public Criteria andSupassTimeGreaterThan(String value) {
            addCriterion("supass_time >", value, "supassTime");
            return (Criteria) this;
        }

        public Criteria andSupassTimeGreaterThanOrEqualTo(String value) {
            addCriterion("supass_time >=", value, "supassTime");
            return (Criteria) this;
        }

        public Criteria andSupassTimeLessThan(String value) {
            addCriterion("supass_time <", value, "supassTime");
            return (Criteria) this;
        }

        public Criteria andSupassTimeLessThanOrEqualTo(String value) {
            addCriterion("supass_time <=", value, "supassTime");
            return (Criteria) this;
        }

        public Criteria andSupassTimeLike(String value) {
            addCriterion("supass_time like", value, "supassTime");
            return (Criteria) this;
        }

        public Criteria andSupassTimeNotLike(String value) {
            addCriterion("supass_time not like", value, "supassTime");
            return (Criteria) this;
        }

        public Criteria andSupassTimeIn(List<String> values) {
            addCriterion("supass_time in", values, "supassTime");
            return (Criteria) this;
        }

        public Criteria andSupassTimeNotIn(List<String> values) {
            addCriterion("supass_time not in", values, "supassTime");
            return (Criteria) this;
        }

        public Criteria andSupassTimeBetween(String value1, String value2) {
            addCriterion("supass_time between", value1, value2, "supassTime");
            return (Criteria) this;
        }

        public Criteria andSupassTimeNotBetween(String value1, String value2) {
            addCriterion("supass_time not between", value1, value2, "supassTime");
            return (Criteria) this;
        }

        public Criteria andMaxChargeIsNull() {
            addCriterion("max_charge is null");
            return (Criteria) this;
        }

        public Criteria andMaxChargeIsNotNull() {
            addCriterion("max_charge is not null");
            return (Criteria) this;
        }

        public Criteria andMaxChargeEqualTo(String value) {
            addCriterion("max_charge =", value, "maxCharge");
            return (Criteria) this;
        }

        public Criteria andMaxChargeNotEqualTo(String value) {
            addCriterion("max_charge <>", value, "maxCharge");
            return (Criteria) this;
        }

        public Criteria andMaxChargeGreaterThan(String value) {
            addCriterion("max_charge >", value, "maxCharge");
            return (Criteria) this;
        }

        public Criteria andMaxChargeGreaterThanOrEqualTo(String value) {
            addCriterion("max_charge >=", value, "maxCharge");
            return (Criteria) this;
        }

        public Criteria andMaxChargeLessThan(String value) {
            addCriterion("max_charge <", value, "maxCharge");
            return (Criteria) this;
        }

        public Criteria andMaxChargeLessThanOrEqualTo(String value) {
            addCriterion("max_charge <=", value, "maxCharge");
            return (Criteria) this;
        }

        public Criteria andMaxChargeLike(String value) {
            addCriterion("max_charge like", value, "maxCharge");
            return (Criteria) this;
        }

        public Criteria andMaxChargeNotLike(String value) {
            addCriterion("max_charge not like", value, "maxCharge");
            return (Criteria) this;
        }

        public Criteria andMaxChargeIn(List<String> values) {
            addCriterion("max_charge in", values, "maxCharge");
            return (Criteria) this;
        }

        public Criteria andMaxChargeNotIn(List<String> values) {
            addCriterion("max_charge not in", values, "maxCharge");
            return (Criteria) this;
        }

        public Criteria andMaxChargeBetween(String value1, String value2) {
            addCriterion("max_charge between", value1, value2, "maxCharge");
            return (Criteria) this;
        }

        public Criteria andMaxChargeNotBetween(String value1, String value2) {
            addCriterion("max_charge not between", value1, value2, "maxCharge");
            return (Criteria) this;
        }

        public Criteria andVersionIsNull() {
            addCriterion("version is null");
            return (Criteria) this;
        }

        public Criteria andVersionIsNotNull() {
            addCriterion("version is not null");
            return (Criteria) this;
        }

        public Criteria andVersionEqualTo(Double value) {
            addCriterion("version =", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotEqualTo(Double value) {
            addCriterion("version <>", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionGreaterThan(Double value) {
            addCriterion("version >", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionGreaterThanOrEqualTo(Double value) {
            addCriterion("version >=", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionLessThan(Double value) {
            addCriterion("version <", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionLessThanOrEqualTo(Double value) {
            addCriterion("version <=", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionIn(List<Double> values) {
            addCriterion("version in", values, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotIn(List<Double> values) {
            addCriterion("version not in", values, "version");
            return (Criteria) this;
        }

        public Criteria andVersionBetween(Double value1, Double value2) {
            addCriterion("version between", value1, value2, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotBetween(Double value1, Double value2) {
            addCriterion("version not between", value1, value2, "version");
            return (Criteria) this;
        }

        public Criteria andCarInUuidIsNull() {
            addCriterion("car_in_uuid is null");
            return (Criteria) this;
        }

        public Criteria andCarInUuidIsNotNull() {
            addCriterion("car_in_uuid is not null");
            return (Criteria) this;
        }

        public Criteria andCarInUuidEqualTo(String value) {
            addCriterion("car_in_uuid =", value, "carInUuid");
            return (Criteria) this;
        }

        public Criteria andCarInUuidNotEqualTo(String value) {
            addCriterion("car_in_uuid <>", value, "carInUuid");
            return (Criteria) this;
        }

        public Criteria andCarInUuidGreaterThan(String value) {
            addCriterion("car_in_uuid >", value, "carInUuid");
            return (Criteria) this;
        }

        public Criteria andCarInUuidGreaterThanOrEqualTo(String value) {
            addCriterion("car_in_uuid >=", value, "carInUuid");
            return (Criteria) this;
        }

        public Criteria andCarInUuidLessThan(String value) {
            addCriterion("car_in_uuid <", value, "carInUuid");
            return (Criteria) this;
        }

        public Criteria andCarInUuidLessThanOrEqualTo(String value) {
            addCriterion("car_in_uuid <=", value, "carInUuid");
            return (Criteria) this;
        }

        public Criteria andCarInUuidLike(String value) {
            addCriterion("car_in_uuid like", value, "carInUuid");
            return (Criteria) this;
        }

        public Criteria andCarInUuidNotLike(String value) {
            addCriterion("car_in_uuid not like", value, "carInUuid");
            return (Criteria) this;
        }

        public Criteria andCarInUuidIn(List<String> values) {
            addCriterion("car_in_uuid in", values, "carInUuid");
            return (Criteria) this;
        }

        public Criteria andCarInUuidNotIn(List<String> values) {
            addCriterion("car_in_uuid not in", values, "carInUuid");
            return (Criteria) this;
        }

        public Criteria andCarInUuidBetween(String value1, String value2) {
            addCriterion("car_in_uuid between", value1, value2, "carInUuid");
            return (Criteria) this;
        }

        public Criteria andCarInUuidNotBetween(String value1, String value2) {
            addCriterion("car_in_uuid not between", value1, value2, "carInUuid");
            return (Criteria) this;
        }

        public Criteria andRuleNameIsNull() {
            addCriterion("rule_name is null");
            return (Criteria) this;
        }

        public Criteria andRuleNameIsNotNull() {
            addCriterion("rule_name is not null");
            return (Criteria) this;
        }

        public Criteria andRuleNameEqualTo(String value) {
            addCriterion("rule_name =", value, "ruleName");
            return (Criteria) this;
        }

        public Criteria andRuleNameNotEqualTo(String value) {
            addCriterion("rule_name <>", value, "ruleName");
            return (Criteria) this;
        }

        public Criteria andRuleNameGreaterThan(String value) {
            addCriterion("rule_name >", value, "ruleName");
            return (Criteria) this;
        }

        public Criteria andRuleNameGreaterThanOrEqualTo(String value) {
            addCriterion("rule_name >=", value, "ruleName");
            return (Criteria) this;
        }

        public Criteria andRuleNameLessThan(String value) {
            addCriterion("rule_name <", value, "ruleName");
            return (Criteria) this;
        }

        public Criteria andRuleNameLessThanOrEqualTo(String value) {
            addCriterion("rule_name <=", value, "ruleName");
            return (Criteria) this;
        }

        public Criteria andRuleNameLike(String value) {
            addCriterion("rule_name like", value, "ruleName");
            return (Criteria) this;
        }

        public Criteria andRuleNameNotLike(String value) {
            addCriterion("rule_name not like", value, "ruleName");
            return (Criteria) this;
        }

        public Criteria andRuleNameIn(List<String> values) {
            addCriterion("rule_name in", values, "ruleName");
            return (Criteria) this;
        }

        public Criteria andRuleNameNotIn(List<String> values) {
            addCriterion("rule_name not in", values, "ruleName");
            return (Criteria) this;
        }

        public Criteria andRuleNameBetween(String value1, String value2) {
            addCriterion("rule_name between", value1, value2, "ruleName");
            return (Criteria) this;
        }

        public Criteria andRuleNameNotBetween(String value1, String value2) {
            addCriterion("rule_name not between", value1, value2, "ruleName");
            return (Criteria) this;
        }

        public Criteria andAttrIsNull() {
            addCriterion("attr_ is null");
            return (Criteria) this;
        }

        public Criteria andAttrIsNotNull() {
            addCriterion("attr_ is not null");
            return (Criteria) this;
        }

        public Criteria andAttrEqualTo(String value) {
            addCriterion("attr_ =", value, "attr");
            return (Criteria) this;
        }

        public Criteria andAttrNotEqualTo(String value) {
            addCriterion("attr_ <>", value, "attr");
            return (Criteria) this;
        }

        public Criteria andAttrGreaterThan(String value) {
            addCriterion("attr_ >", value, "attr");
            return (Criteria) this;
        }

        public Criteria andAttrGreaterThanOrEqualTo(String value) {
            addCriterion("attr_ >=", value, "attr");
            return (Criteria) this;
        }

        public Criteria andAttrLessThan(String value) {
            addCriterion("attr_ <", value, "attr");
            return (Criteria) this;
        }

        public Criteria andAttrLessThanOrEqualTo(String value) {
            addCriterion("attr_ <=", value, "attr");
            return (Criteria) this;
        }

        public Criteria andAttrLike(String value) {
            addCriterion("attr_ like", value, "attr");
            return (Criteria) this;
        }

        public Criteria andAttrNotLike(String value) {
            addCriterion("attr_ not like", value, "attr");
            return (Criteria) this;
        }

        public Criteria andAttrIn(List<String> values) {
            addCriterion("attr_ in", values, "attr");
            return (Criteria) this;
        }

        public Criteria andAttrNotIn(List<String> values) {
            addCriterion("attr_ not in", values, "attr");
            return (Criteria) this;
        }

        public Criteria andAttrBetween(String value1, String value2) {
            addCriterion("attr_ between", value1, value2, "attr");
            return (Criteria) this;
        }

        public Criteria andAttrNotBetween(String value1, String value2) {
            addCriterion("attr_ not between", value1, value2, "attr");
            return (Criteria) this;
        }

        public Criteria andAttr2IsNull() {
            addCriterion("attr2_ is null");
            return (Criteria) this;
        }

        public Criteria andAttr2IsNotNull() {
            addCriterion("attr2_ is not null");
            return (Criteria) this;
        }

        public Criteria andAttr2EqualTo(String value) {
            addCriterion("attr2_ =", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2NotEqualTo(String value) {
            addCriterion("attr2_ <>", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2GreaterThan(String value) {
            addCriterion("attr2_ >", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2GreaterThanOrEqualTo(String value) {
            addCriterion("attr2_ >=", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2LessThan(String value) {
            addCriterion("attr2_ <", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2LessThanOrEqualTo(String value) {
            addCriterion("attr2_ <=", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2Like(String value) {
            addCriterion("attr2_ like", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2NotLike(String value) {
            addCriterion("attr2_ not like", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2In(List<String> values) {
            addCriterion("attr2_ in", values, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2NotIn(List<String> values) {
            addCriterion("attr2_ not in", values, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2Between(String value1, String value2) {
            addCriterion("attr2_ between", value1, value2, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2NotBetween(String value1, String value2) {
            addCriterion("attr2_ not between", value1, value2, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr3IsNull() {
            addCriterion("attr3_ is null");
            return (Criteria) this;
        }

        public Criteria andAttr3IsNotNull() {
            addCriterion("attr3_ is not null");
            return (Criteria) this;
        }

        public Criteria andAttr3EqualTo(String value) {
            addCriterion("attr3_ =", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3NotEqualTo(String value) {
            addCriterion("attr3_ <>", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3GreaterThan(String value) {
            addCriterion("attr3_ >", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3GreaterThanOrEqualTo(String value) {
            addCriterion("attr3_ >=", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3LessThan(String value) {
            addCriterion("attr3_ <", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3LessThanOrEqualTo(String value) {
            addCriterion("attr3_ <=", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3Like(String value) {
            addCriterion("attr3_ like", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3NotLike(String value) {
            addCriterion("attr3_ not like", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3In(List<String> values) {
            addCriterion("attr3_ in", values, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3NotIn(List<String> values) {
            addCriterion("attr3_ not in", values, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3Between(String value1, String value2) {
            addCriterion("attr3_ between", value1, value2, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3NotBetween(String value1, String value2) {
            addCriterion("attr3_ not between", value1, value2, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr4IsNull() {
            addCriterion("attr4_ is null");
            return (Criteria) this;
        }

        public Criteria andAttr4IsNotNull() {
            addCriterion("attr4_ is not null");
            return (Criteria) this;
        }

        public Criteria andAttr4EqualTo(String value) {
            addCriterion("attr4_ =", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4NotEqualTo(String value) {
            addCriterion("attr4_ <>", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4GreaterThan(String value) {
            addCriterion("attr4_ >", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4GreaterThanOrEqualTo(String value) {
            addCriterion("attr4_ >=", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4LessThan(String value) {
            addCriterion("attr4_ <", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4LessThanOrEqualTo(String value) {
            addCriterion("attr4_ <=", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4Like(String value) {
            addCriterion("attr4_ like", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4NotLike(String value) {
            addCriterion("attr4_ not like", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4In(List<String> values) {
            addCriterion("attr4_ in", values, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4NotIn(List<String> values) {
            addCriterion("attr4_ not in", values, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4Between(String value1, String value2) {
            addCriterion("attr4_ between", value1, value2, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4NotBetween(String value1, String value2) {
            addCriterion("attr4_ not between", value1, value2, "attr4");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}